HarmonyOS-鸿蒙app开发 —多模输入事件标准化开发指导

HarmonyOS-鸿蒙app开发 —多模输入事件标准化开发指导

场景介绍

多模输入结合UI框架实现了交互事件映射框架,可将多种输入设备的原始事件自动映射为标准化事件;进一步将标准化事件映射成统一的UI交互功能,实现统一的用户交互体验。

接口说明

多模输入事件标准化提供了标准化基类(StandardizedEventHandle),以及其派生的通用类标准化事件(CommonEventHandle)、媒体类标准化事件(MediaEventHandle)、系统类标准化事件(SystemEventHandle)、通话类标准化事件(TelephoneEventHandle)等,另外提供处理标准化事件的类(MultimodalEventHandle),包括注册和去注册标准化事件。

图1 多模输入事件标准化类

  • StandardizedEventHandle是所有事件的基类。
  • CommonEventHandle处理标准公共事件。
    表1 CommonEventHandle的主要接口

    功能分类

    接口名

    描述

    事件回调

    boolean onShowMenu(MultimodalEvent multimodalEvent)

    显示菜单时调用。

    boolean onSend(MultimodalEvent multimodalEvent)

    发送事件发生时调用。

    boolean onCopy(MultimodalEvent multimodalEvent)

    发生复制事件时调用。

    boolean onPaste(MultimodalEvent multimodalEvent)

    发生粘贴事件时调用。

    boolean onCut(MultimodalEvent multimodalEvent)

    发生剪切事件时调用。

    boolean onUndo(MultimodalEvent multimodalEvent)

    发生撤销事件时调用。

    boolean onRefresh(MultimodalEvent multimodalEvent)

    发生刷新事件时调用。

    boolean onStartDrag(MultimodalEvent multimodalEvent)

    启动拖动时调用。

    boolean onCancel(MultimodalEvent multimodalEvent)

    发生取消事件时调用。

    boolean onEnter(MultimodalEvent multimodalEvent)

    发生确认事件时调用。

    boolean onPrevious(MultimodalEvent multimodalEvent)

    发生转到上一个元素的事件时调用。

    boolean onNext(MultimodalEvent multimodalEvent)

    发生转到下一个元素的事件时调用。

    boolean onBack(MultimodalEvent multimodalEvent)

    返回事件发生时调用。

    boolean onPrint(MultimodalEvent multimodalEvent)

    发生打印事件时调用。

  • KeyEventHandle处理标准按键事件。
    表2 KeyEventHandle的主要接口

    功能分类

    接口名

    描述

    事件回调

    boolean onKey(KeyEvent event)

    按键事件发生时调用。

  • MediaEventHandle处理标准媒体事件。
    表3 MediaEventHandle的主要接口

    功能分类

    接口名

    描述

    事件回调

    boolean onPlay(MultimodalEvent multimodalEvent)

    播放媒体时调用。

    boolean onPause(MultimodalEvent multimodalEvent)

    暂停播放时调用。

    boolean onMediaControl(MultimodalEvent multimodalEvent)

    在媒体控制事件发生时调用,可以播放或暂停。

  • SystemEventHandle处理标准系统事件。
    表4 SystemEventHandle的主要接口

    功能分类

    接口名

    描述

    事件回调

    boolean onClosePage(MultimodalEvent multimodalEvent)

    当页面关闭时调用。

    boolean onMute(MultimodalEvent multimodalEvent)

    音量静音时调用。

  • TelephoneEventHandle处理标准呼叫事件。
    表5 TelephoneEventHandle的主要接口

    功能分类

    接口名

    描述

    事件回调

    boolean onAnswer(MultimodalEvent multimodalEvent)

    应答呼叫时调用。

    boolean onRefuse(MultimodalEvent multimodalEvent)

    呼叫被拒绝时调用。

    boolean onHangup(MultimodalEvent multimodalEvent)

    挂断呼叫时调用。

    boolean onTelephoneControl(MultimodalEvent multimodalEvent)

    呼叫控制事件发生时调用。

  • TouchEventHandle处理标准触摸事件。
    表6 TouchEventHandle的主要接口

    功能分类

    接口名

    描述

    事件回调

    boolean onTouch(TouchEvent event)

    触摸事件发生时调用。

  • MultimodalEventHandle处理标准事件的注册和去注册。
    表7 MultimodalEventHandle的主要接口

    功能分类

    接口名

    描述

    事件注册

    static int registerStandardizedEventHandle(Ability ability,StandardizedEventHandle standardizedEventHandle)

    注册标准化事件。

    事件去注册

    static int unregisterStandardizedEventHandle(Ability ability,StandardizedEventHandle standardizedEventHandle)

    去注册标准化事件。

开发步骤

  1. 重写TouchEventHandle接口类中的boolean onTouch(TouchEvent event)方法,作为处理标准触摸事件的回调。
  2. 调用MultimodalEventHandle的静态方法registerStandardizedEventHandle注册事件。

    TouchEventHandle touchEventHandle = new TouchEventHandle() {
    @Override
    public boolean onTouch(TouchEvent multimodalEvent) {
    … // 检测到onTouch,开发者根据需求实现
    return true; // 如果事件已处理,则返回true;否则返回false
    }
    };
    MultimodalEventHandle.registerStandardizedEventHandle(getAbility(), touchEventHandle);

  3. 当程序退出或不需要监听标准化事件时,调用MultimodalEventHandle的静态方法unregisterStandardizedEventHandle去注册事件。

    MultimodalEventHandle.unregisterStandardizedEventHandle(getAbility(), touchEventHandle);

0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x